package com.syf.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.syf.domain.SysMenu;
import com.syf.mapper.SysMenuMapper;
import com.syf.service.SysMenuService;
import com.syf.service.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 *IService<T>:
 *   list(): 查询所有
 *   getById(id): 根据ID查询(this.getBaseMapper().selectById(id))
 *
 *@author 苏耀奋
 *@create 2021-07-11 12:11
 */

@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {

    @Autowired
    private SysRoleService sysRoleService ; //角色service

    @Autowired
    private SysMenuMapper sysMenuMapper ;  //菜单mspper

    /**
     * 通过用户的id 查询用户的菜单数据【用户ID -> 角色 -> 菜单/权限】
     * @param userId
     * @return
     */
    @Override
    public List<SysMenu> getMenusByUserId(Long userId) {
        // 1 如果该用户是超级管理员->>拥有所有的菜单
        if(sysRoleService.isSuperAdmin(userId)){
            return list() ; // 查询所有菜单 (IService<SysMenu>接口方法)
        }
        // 2 如果该用户不是超级管理员: 用户的id -> 查询角色 -> 查询菜单(通过用户的 id 查询用户的菜单数据)
        return sysMenuMapper.selectMenusByUserId(userId);
    }
}
